home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr49
/
zfrms100.zip
/
ZFORMS.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-06-01
|
19KB
|
511 lines
/************************* Popup Window Structures ***********************/
/* Each Popup Window has a defining structure. The structure determines */
/* the characteristics of the window (size, color, etc). */
/*************************************************************************/
/*************************************************************************/
/* predefined macros to define ZForms macros. These determine compiler */
/* build options. __Z_SECVID__ indiactes secondary video (VioWrtCellStr)*/
/* rather than VioGetBuf/VioShowBuf. __Z_INIT_EXT__ indicates that the */
/* compiler supports unsized array definitions, with the size specified */
/* in the declaration. Most don't. */
#define __Z_INIT_EXT__
#if defined __IBMC__ && defined __32BIT__
#define __Z_SECVID__
#undef __Z_INIT_EXT__
#endif
#if defined __BORLANDC__
#ifdef __OS2__
#define __Z_SECVID__
#endif
#undef __Z_INIT_EXT__
#endif
/*************************************************************************/
/* True and False */
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
/* Virtual Screen Pointer - points to a virtual screen buffer */
typedef int * VSP;
/* Popup window structure */
struct WIN_S {
int fShown;
int Height;
int Width;
struct WIN_S * Prev;
struct WIN_S * Next;
int XOrg;
int YOrg;
int DefaultChar;
int BorderStyle;
int BorderColor;
int BorderBack;
int DropShadow;
int DropAttr;
char *Title;
char *SubTitle;
VSP pVS;
};
typedef struct WIN_S WINDOW;
/* Window Border Styles */
#define BS_NOBORDER 0x0
#define BS_DOUBLELINE 0x1
#define BS_SINGLELINE 0x2
/* Drop Shadow Styles */
#define DS_NONE 0x0
#define DS_LOWERRIGHT 0x1
#define DS_LOWERLEFT 0x2
#define DS_UPPERLEFT 0x3
#define DS_UPPERRIGHT 0x4
/* Window Color Definitions */
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define CYAN 3
#define RED 4
#define MAGENTA 5
#define BROWN 6
#define WHITE 7
#define DARKGRAY 8
#define DARKGREY 8
#define LT_BLUE 9
#define LT_GREEN 10
#define LT_CYAN 11
#define LT_RED 12
#define LT_MAGENTA 13
#define YELLOW 14
#define BRIGHTWHITE 15
#define BLINKING 16
/************************ Menu Structure ****************************/
/* Each menu is made up of a structure which defines the menu text, */
/* size, position, function to execute, etc. */
/********************************************************************/
/* Menu Item Structure */
typedef struct {
char * Text; /* Menu item text */
int Flags; /* Menu handling flags */
int HotKey; /* key-stroke(s) to get selected */
int OffsetHiLite; /* Able to Hilite Individual Letter */
int XOrg; /* X position relative to the window */
int YOrg; /* Y position relative to the window */
void * ActionPtr; /* Pointer to a function or another menu */
char * Hint; /* Hint text */
} MENU_ITEM;
/* Menu Item Flags */
#define MIF_USEHINT 0x1
#define MIF_NOHINT 0x0
#define MIF_CALLMENU 0x2
#define MIF_CALLDIALOG 0x4
#define MIF_CALLFUNC 0x8
#define MIF_CALLEXIT 0x10
#define MIF_CALLNOTHING 0x0
#define MIF_RIGHTJUST 0x20
#define MIF_LEFTJUST 0x0
#define MIF_SUBMENU 0x40
#define MIF_NOSUBMENU 0x0
/* Menu structure */
typedef struct {
int OrgX; /* Menu X origin (upper left corner) */
int OrgY; /* Menu Y origin (upper left corner) */
int Height; /* Window Height */
int Width; /* Window width */
int TextWidth; /* menu text width if vertical */
int Flags; /* Menu flags */
int TextColor; /* color of text */
int BackColor; /* color of background */
int HotColor; /* Hot key color */
int HotBack; /* Hot key background color */
int HiTextColor; /* color of hilighted text */
int HiBackColor; /* color of background text */
int HintTextColor; /* color of hint text */
int HintBackColor; /* color of hint background */
int HintOrgX; /* X position of the hint */
int HintOrgY; /* Y position of the hint */
int HintWidth; /* Width of hint text */
int BorderStyle; /* border styles */
int BorderColor; /* Border Color */
int BorderBack; /* Border Background Color */
int DropShadow; /* whether to use a drop shadow / */
int DropAttr; /* drop shadow attribute */
char *Title; /* Menu window border title */
#ifdef __Z_INIT_EXT__
MENU_ITEM Item[]; /* Array of MENU_ITEM structures */
#else
MENU_ITEM *Item; /* Array of MENU_ITEM structures */
#endif
} MENU;
/* Flags for Menus */
#define MMF_USECLOCK 0x1
#define MMF_NOCLOCK 0x0
#define MMF_VERTMENU 0x2
#define MMF_HORIZMENU 0x0
#define MMF_SUBMENU 0x4
#define MMF_NOTSUBMENU 0x0
#define MMF_USEHINT 0x8
#define MMF_NOHINT 0x0
/********************* Dialog Box Structures ***********************/
/* Dialog Boxes are made up of a Dialog Box structure and a set of */
/* Control Structures. */
/*******************************************************************/
/* Control Structure */
typedef struct {
char * Text; /* Text for Button */
int Style; /* Control Style */
int Flags; /* Control flags */
int HotKey; /* key to activate control, if any */
int OffsetHiLite; /* Index into text for highlighted character */
int XOrg; /* X Origin for the control */
int YOrg; /* Y Origin for the control */
int Height; /* Control height */
int Width; /* Control width */
int TextColor; /* color of text */
int TextBack; /* color of background */
int HiTextColor; /* color of hilighted text */
int HiBackColor; /* color of hilighted background */
void * ActionPtr; /* pointer to function to execute */
char * Hint; /* Text for Hint */
int (*Validate)(void *); /* Validation function */
} DLG_CONTROL;
/* Control Style Flags */
#define CSF_BUTTON 0x0
#define CSF_VERTSCROLL 0x1
#define CSF_HORZSCROLL 0x2
#define CSF_TEXT 0x4
#define CSF_DATAENTRY 0x8
#define CSF_CHECKBOX 0x10
#define CSF_ONEOFBUTTON 0x20
#define CSF_PICKLIST 0x40
/* Control Flags */
#define CSS_NOACTIVATE 0x0
#define CSS_ACTIVATE 0x1
#define CSS_CALLFUNC 0x2
#define CSS_CALLDIALOG 0x4
#define CSS_CALLMENU 0x8
#define CSS_EXIT 0x10
#define CSS_CALLNOTHING 0x0
/* Dialog Box Structure */
typedef struct {
int XOrg; /* X Origin for dialog box */
int YOrg; /* Y Origin for dialog box */
int Height; /* Height for window */
int Width; /* Width of window */
int Flags; /* Dialog box flags */
int DefaultChar; /* Default character and attribute for window */
int HintTextColor; /* Color for hint text, if any */
int HintBackColor; /* Background color for the hint, if any */
int HintOrgX; /* Hint window X origin */
int HintOrgY; /* Hint window Y origin */
int HintWidth; /* Width of hint window */
int BorderStyle; /* Border style for window */
int BorderColor; /* Border foreground color */
int BorderBack; /* Border background color */
int DropShadow; /* whether to drop shadow or not */
int DropAttr; /* drop shadow attribute */
char *Title; /* Pointer to Title Text */
void (*Entry)(void); /* function to execute upon entry */
#ifdef __Z_INIT_EXT__
DLG_CONTROL Control[]; /* Control array */
#else
DLG_CONTROL *Control; /* Control array */
#endif
} DIALOG;
/* Dialog Box Flags */
#define DBF_USEHINT 0x1
#define DBF_NOHINT 0x0
/************************ Keyboard definitions ******************/
/* This section defines all keys and keyboard functions *********/
/****************************************************************/
/* Readmap to keyboard combinations */
#define k_special 0xf00
#define k_F1 0xf3b
#define k_F2 0xf3c
#define k_F3 0xf3d
#define k_F4 0xf3e
#define k_F5 0xf3f
#define k_F6 0xf40
#define k_F7 0xf41
#define k_F8 0xf42
#define k_F9 0xf43
#define k_F10 0xf44
#define k_F11 0xf85
#define k_F12 0xf86
#define k_Shift_F1 0xf54
#define k_Shift_F2 0xf55
#define k_Shift_F3 0xf56
#define k_Shift_F4 0xf57
#define k_Shift_F5 0xf58
#define k_Shift_F6 0xf59
#define k_Shift_F7 0xf5a
#define k_Shift_F8 0xf5b
#define k_Shift_F9 0xf5c
#define k_Shift_F10 0xf5d
#define k_Shift_F11 0xf87
#define k_Shift_F12 0xf88
#define k_Alt_F1 0xf68
#define k_Alt_F2 0xf69
#define k_Alt_F3 0xf6a
#define k_Alt_F4 0xf6b
#define k_Alt_F5 0xf6c
#define k_Alt_F6 0xf6d
#define k_Alt_F7 0xf6e
#define k_Alt_F8 0xf6f
#define k_Alt_F9 0xf70
#define k_Alt_F10 0xf71
#define k_Alt_F11 0xf8b
#define k_Alt_F12 0xf8c
#define k_Ctrl_F1 0xf5e
#define k_Ctrl_F2 0xf5f
#define k_Ctrl_F3 0xf60
#define k_Ctrl_F4 0xf61
#define k_Ctrl_F5 0xf62
#define k_Ctrl_F6 0xf63
#define k_Ctrl_F7 0xf64
#define k_Ctrl_F8 0xf65
#define k_Ctrl_F9 0xf66
#define k_Ctrl_F10 0xf67
#define k_Ctrl_F11 0xf89
#define k_Ctrl_F12 0xf8a
#define k_UpArr 0xf48
#define k_DnArr 0xf50
#define k_RtArr 0xf4d
#define k_LtArr 0xf4b
#define k_PgUp 0xf49
#define k_PgDn 0xf51
#define k_Home 0xf47
#define k_End 0xf4f
#define k_Ins 0xf52
#define k_Del 0xf53
#define k_Shift_UpArr 0xf48
#define k_Shift_DnArr 0xf50
#define k_Shift_RtArr 0xf4d
#define k_Shift_LtArr 0xf4b
#define k_Shift_PgUp 0xf49
#define k_Shift_PgDn 0xf51
#define k_Shift_Home 0xf47
#define k_Shift_End 0xf4f
#define k_Shift_Ins 0xf52
#define k_Shift_Del 0xf53
#define k_Alt_UpArr 0xf98
#define k_Alt_DnArr 0xfa0
#define k_Alt_RtArr 0xf9d
#define k_Alt_LtArr 0xf9b
#define k_Alt_PgUp 0xf99
#define k_Alt_PgDn 0xfa1
#define k_Alt_Home 0xf00
#define k_Alt_End 0xf9f
#define k_Alt_Ins 0xfa2
#define k_Alt_Del 0xfa3
#define k_Ctrl_UpArr 0xf8D
#define k_Ctrl_DnArr 0xf91
#define k_Ctrl_RtArr 0xf74
#define k_Ctrl_LtArr 0xf73
#define k_Ctrl_PgUp 0xf84
#define k_Ctrl_PgDn 0xf76
#define k_Ctrl_Home 0xf77
#define k_Ctrl_End 0xf75
#define k_Ctrl_Ins 0xf92
#define k_Ctrl_Del 0xf93
#define k_Esc 0x1b
#define k_Enter 0x0d
#define k_Backspace 0x08
#define k_Tab 0x09
#define k_Shift_Tab 0xf0f
#define k_Ctrl_A 0x01
#define k_Ctrl_B 0x02
#define k_Ctrl_C 0x03
#define k_Ctrl_D 0x04
#define k_Ctrl_E 0x05
#define k_Ctrl_F 0x06
#define k_Ctrl_G 0x07
#define k_Ctrl_H 0x08
#define k_Ctrl_I 0x09
#define k_Ctrl_J 0x0A
#define k_Ctrl_K 0x0B
#define k_Ctrl_L 0x0C
#define k_Ctrl_M 0x0D
#define k_Ctrl_N 0x0E
#define k_Ctrl_O 0x0F
#define k_Ctrl_P 0x10
#define k_Ctrl_Q 0x11
#define k_Ctrl_R 0x12
#define k_Ctrl_S 0x13
#define k_Ctrl_T 0x14
#define k_Ctrl_U 0x15
#define k_Ctrl_V 0x16
#define k_Ctrl_W 0x17
#define k_Ctrl_X 0x18
#define k_Ctrl_Y 0x19
#define k_Ctrl_Z 0x1A
#define k_Alt_A 0xf1e
#define k_Alt_B 0xf30
#define k_Alt_C 0xf2e
#define k_Alt_D 0xf20
#define k_Alt_E 0xf12
#define k_Alt_F 0xf21
#define k_Alt_G 0xf22
#define k_Alt_H 0xf23
#define k_Alt_I 0xf17
#define k_Alt_J 0xf24
#define k_Alt_K 0xf25
#define k_Alt_L 0xf26
#define k_Alt_M 0xf32
#define k_Alt_N 0xf31
#define k_Alt_O 0xf18
#define k_Alt_P 0xf19
#define k_Alt_Q 0xf10
#define k_Alt_R 0xf13
#define k_Alt_S 0xf1f
#define k_Alt_T 0xf14
#define k_Alt_U 0xf16
#define k_Alt_V 0xf2f
#define k_Alt_W 0xf11
#define k_Alt_X 0xf2d
#define k_Alt_Y 0xf15
#define k_Alt_Z 0xf2c
#define k_Alt_1 0xf78
#define k_Alt_2 0xf79
#define k_Alt_3 0xf7a
#define k_Alt_4 0xf7b
#define k_Alt_5 0xf7c
#define k_Alt_6 0xf7d
#define k_Alt_7 0xf7e
#define k_Alt_8 0xf7f
#define k_Alt_9 0xf80
#define k_Alt_0 0xf81
#define k_NoKey -1
/* Prompt Structure */
typedef struct {
char * Response;
char * Prompt;
char * Mask;
int Length;
int XPos;
int YPos;
int PromptColor;
int PromptBack;
int ResponseColor;
int ResponseBack;
int HiColor;
int HiBack;
int (*Verify)(char *);
char *Hint;
} PROMPT;
/************************ PickList ******************************/
/* This section defines the picklist pre-defined window type ****/
/****************************************************************/
/* Picklist items */
struct PL_ITEM {
char *ItemText;
struct PL_ITEM *Prev;
struct PL_ITEM *Next;
};
typedef struct PL_ITEM PICKLIST_ITEM;
/* PickList structure */
typedef struct {
int OrgX; /* Picklist X origin (upper left corner) */
int OrgY; /* Picklist Y origin (upper left corner) */
int Height; /* Window Height */
int Width; /* Window width */
int TextWidth; /* picklist text width */
int Flags; /* Picklist flags */
int TextColor; /* color of text */
int BackColor; /* color of background */
int HiTextColor; /* color of hilighted text */
int HiBackColor; /* color of background text */
int BorderStyle; /* border styles */
int BorderColor; /* Border Color */
int BorderBack; /* Border Background Color */
int DefaultChar; /* default character for window */
int DropShadow; /* whether to drop shadow the picklist */
int DropAttr; /* the atttribute to use */
char *Title; /* Picklist window border title */
WINDOW *pWin; /* pointer to the window to use */
PICKLIST_ITEM *Item; /* Head of PICKLIST_ITEM structures list */
PICKLIST_ITEM *LastItem;/* Tail of PICKLIST_ITEM structures list */
} PICKLIST;
/************************ Functions *****************************/
/* This section defines externally known functions **************/
/****************************************************************/
/* Popup Window Functions */
int Z_IsCharOnTop(WINDOW *, int, int, int);
void Z_ShowWindow(WINDOW *);
void Z_HideWindow(WINDOW *);
void Z_UnDefineWindow(WINDOW *);
WINDOW * Z_DefineWindow(WINDOW *);
void Z_UpdatePhysicalScreen(WINDOW *, int, int, int, int);
void Z_TextOut(WINDOW *, char *, int, int, int, int);
void Z_TextOver(WINDOW *, char *, int, int);
WINDOW * Z_CreateWindow(WINDOW *, int, int, int, int, int, int, int, int, int, int, char *, char *);
void Z_BorderWindow(WINDOW *);
void Z_ClearScreen(char, char);
void Z_SetCursor(WINDOW *, int, int);
WINDOW * Z_OpenWindow(WINDOW *);
void Z_CloseWindow(WINDOW *);
void Z_ScrollUp(WINDOW *, int);
void Z_ScrollDown(WINDOW *, int);
void Z_GetVideoMode(void);
void Z_SetVideoMode(int, int);
void Z_TitleWindow(WINDOW *);
void Z_BorderWindow(WINDOW *);
void Z_PopWindow(WINDOW *);
void Z_PushWindow(WINDOW *);
int Z_GetCharOnTop(WINDOW *, int, int);
/* Menu Functions */
void Z_DisplayMenuSelection(MENU *, WINDOW *, int, int);
int Z_CountMenuItems(MENU *);
WINDOW * Z_InitMenu(MENU *, WINDOW *, int *);
WINDOW * Z_InitHint(MENU *, WINDOW *);
int Z_HandleMenu(MENU *);
/* Dialog Box Functions */
int Z_HandleDialog(DIALOG *);
int Z_InformUser(char *, char *, char *, char *);
int Z_CountDialogItems(DIALOG *);
int Z_NextActiveControl(DIALOG *, int, int);
int Z_PrevActiveControl(DIALOG *, int, int);
/* Keyboard functions */
int Z_GetKey(void);
void Z_Delay(int);
int Z_HandleInputs(WINDOW *, WINDOW *, PROMPT *, int *);
int Z_SetBackgroundProcess(void (*pFunc)(void), int Milli);
/* PickList functions */
void Z_PurgePickList(PICKLIST *);
void Z_DestroyPickList(PICKLIST *);
int Z_AddPickListItem(PICKLIST *, char *);
int Z_RemovePickListItem(PICKLIST *, char *);
PICKLIST_ITEM * Z_HandlePickList(PICKLIST *);
void Z_OpenPickList(PICKLIST *);
void Z_ClosePickList(PICKLIST *);
int Z_ShowPickList(PICKLIST *, int, PICKLIST_ITEM *, PICKLIST_ITEM **);
int Z_RemovePickListEntry(PICKLIST *, PICKLIST_ITEM *);